package com.ruoyi.system.service;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.system.domain.PStoreCart;
import com.ruoyi.system.domain.bo.PStoreCartBo;
import com.ruoyi.system.domain.vo.CartInfoResponse;
import com.ruoyi.system.domain.vo.PStoreCartVo;

import java.util.Collection;
import java.util.List;

/**
 * 购物车Service接口
 *
 * @author ruoyi
 * @date 2022-08-01
 */
public interface IPStoreCartService {

    /**
     * 查询购物车
     */
    PStoreCartVo queryById(Integer id);

    /**
     * 查询购物车列表
     */
    TableDataInfo<PStoreCartVo> queryPageList(PStoreCartBo bo, PageQuery pageQuery);

    /**
     * 查询购物车列表
     */
    List<PStoreCartVo> queryList(PStoreCartBo bo);

    /**
     * 修改购物车
     */
    String insertByBo(PStoreCartBo bo);

    /**
     * 修改购物车
     */
    Boolean updateByBo(PStoreCartBo bo);

    /**
     * 校验并批量删除购物车信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 购物车数量
     */
    long getCount();

    /**
     * 前端-购物车列表
     */
    TableDataInfo<CartInfoResponse> queryPageFontList(PStoreCartBo bo, PageQuery pageQuery);

    /**
     * 前端-修改购物车数量
     */
    void updateByFontBo(long id, int number);

    /**
     * 前端-购物车重选
     */
    void resetCart(PStoreCartBo bo);

    /**
     * 购物车列表
     * @param pageQuery
     * @return
     */
    TableDataInfo<PStoreCart> cartList(PageQuery pageQuery);

    /**
     * 前端-添加购物车
     */
    String insertFontByBo(PStoreCartBo bo);
}
